/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package elaborate.tag_analysis.client.applications;

import java.awt.Component;

/**
 * an abstraction layer of all applications
 * @author lendle
 */
public interface Application {
    public String getApplicationId();
    public void init(ApplicationContext context);
    /**
     * @return the main view component of the application
     */
    public Component getMainView();
    /**
     * request the application to get tags associated with
     * the given resourceIdentifier
     * Applications should respond with a TagProcessingEvent
     * @param resourceIdentifier 
     */
    public void requestTags4Resource(String resourceIdentifier);
    public ResourceHandler getResourceHandler();
    
    public void activated();
    public void closing();
    
    public DaoFactory getDaoFactory();
}
